Devices within a network distribute content and provide services to subscriber devices dispersed throughout the network. The devices, often referred to as hosts or host devices, may include web servers, application servers, digital content providers, file servers, print servers, or other devices. Examples of subscriber devices may include personal computers, laptops, workstations, personal digital assistants (PDAs), cellular phones, network ready appliances, wireless devices, set top boxes, and the like. In order to communicate the content and services between the hosts and subscriber devices, the network generally includes routing devices, often referred to as routers, that route the content and services from the host device, through the network, to the subscriber device. The network may also include hubs, gateways, switches, and other network devices to facilitate communications between the host devices and the subscriber devices.
Typically, a host authenticates the subscriber device so that the subscriber device may receive the content and services that the host provides. After authenticating the subscriber device, the host sends any content and services requested by the subscriber device through the network to the subscriber device. Conventional end-user applications executing on the subscriber devices receive and present the content and services to a user, and the user may interact with the end-user applications to request further content and services from the hosts. The host may, for example, provide content in the form of a data stream, such as a television broadcast feed from CNN or ESPN or an audio music stream, and the user may select one or more of the various data streams to view or listen to via the end-user applications.
Occasionally, a network disturbance, such as a network router failure, may interfere with communications between one of the hosts and the subscriber devices. In these instances, the network disturbance may prevent all or portions of the various data streams from reaching the subscriber devices, and, therefore, the users may not be able to access these data streams until the network disturbance is resolved. Conventional solutions to this problem involve utilizing multiple hosts to send redundant data streams to end-user applications. In some cases, upon detecting the failure within the network, the end-user application attempts to connect to another host device providing an identical, or redundant, data stream. Once connected, the end-user application may resume receiving the data stream and presenting the data stream to the user.
In other cases, one or more hosts provide one or more redundant data streams to the subscriber device in parallel with the original data stream. In this case, the end-user application need not connect to a different host in the event of a network failure. Instead, the end-user application need only select one of the redundant data streams that are unaffected by the network failure.
While these solutions may reduce the impact of a network failure on the delivery of content and servers, the conventional solutions may substantially increase the consumption of bandwidth throughout the network. For example, delivery of one or more redundant data streams to each subscriber device may consume considerable bandwidth even though a network disturbance has not occurred. Moreover, these solutions require that each end-user application be modified to become aware of and be able to process the redundant data streams.